#ifndef WINVER              // Allow use of features specific to Windows XP or later.
#define WINVER 0x0501       // Change this to the appropriate value to target other versions of Windows.
#endif

#ifndef _WIN32_WINNT        // Allow use of features specific to Windows XP or later.                   
#define _WIN32_WINNT 0x0501 // Change this to the appropriate value to target other versions of Windows.
#endif

#ifndef _WIN32_WINDOWS          // Allow use of features specific to Windows 98 or later.
#define _WIN32_WINDOWS 0x0410   // Change this to the appropriate value to target Windows Me or later.
#endif

#ifndef _WIN32_IE           // Allow use of features specific to IE 6.0 or later.
#define _WIN32_IE 0x0600    // Change this to the appropriate value to target other versions of IE.
#endif

#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers

#include <windows.h>
#include <winioctl.h>

#include <atlbase.h>
#include <atlwin.h>

#include <vector>
//#include <stack>
//#include <set>
//#include <map>
//#include <deque>
#include <algorithm>
//#include <queue>
#include <string>
#include <iterator>

using namespace std;

#include <math.h>
#include <ctime>

#include <GL/glut.h>
#include "lib3ds.h"
#include "lua.hpp"
#include "unzip.h"
#include "zip.h"

#define XMD_H	//already define INT32
#undef FAR
#include "jpeglib.h"

#include "utils/typeutils.h"
#include "utils/timeutils.h"
#include "utils/mathutils.h"
#include "utils/strutils.h"

#include "event/event.h"